package com.egao.common.module.student.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 学生主体信息
 * @author lym
 */
@ApiModel(description = "学生主体信息")
@TableName("student")
@Data
public class Student implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("主键")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    @ApiModelProperty("用户ID")
    private Integer userId;

    @ApiModelProperty("年份ID编码")
    private Integer yearId;

    @ApiModelProperty("就业方式 7种")
    private String signCategory;

    @ApiModelProperty("学号")
    private String xh;

    @ApiModelProperty("手机号")
    private String mobile;

    @ApiModelProperty("电子邮箱")
    private String email;

    @ApiModelProperty("学院编码")
    private String collegeCode;

    @ApiModelProperty("专业编码")
    private String majorCode;

    @ApiModelProperty("班级号码 只有本科生有")
    private String bjhm;

    @ApiModelProperty("姓名")
    private String xm;

    @ApiModelProperty("性别 1男 2女")
    private String xb;

    @ApiModelProperty("是否接受推送 0不接受 1接受")
    private String pushState;

    @ApiModelProperty("学历")
    private String xl;

    @ApiModelProperty(value = "学历 1本科 2研究生", notes = "xl 本科对应本科 硕士博士对应研究生")
    private String degree;

    @ApiModelProperty("学制")
    private Integer xz;

    @ApiModelProperty("学位")
    private String xw;

    @ApiModelProperty("学位类别")
    private String xwlb;

    @ApiModelProperty("年级")
    private String grade;

    @ApiModelProperty("培养方式")
    private String pyfs;

    @ApiModelProperty("定向生状态 0解锁 1锁定")
    private String directionalState;

    @ApiModelProperty("出生日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date csrq;

    @ApiModelProperty("入学时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date rxsj;

    @ApiModelProperty("毕业时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date bysj;

    @ApiModelProperty("生源省份")
    private String sysf;

    @ApiModelProperty("生源地区代码")
    private String syszd;

    @ApiModelProperty("身份证号码")
    private String sfzhm;

    @ApiModelProperty("考生号")
    private String ksh;

    @ApiModelProperty("政治面貌")
    private String zzmm;

    @ApiModelProperty("民族")
    private String mz;

    @ApiModelProperty("困难生类别")
    private String knslb;

    @ApiModelProperty("精准帮扶对象标志 0否 1是")
    private String jzbfdxbz;

    @ApiModelProperty("户口是否转入学校 0否 1是")
    private String hksfzrxx;

    @ApiModelProperty("学籍状态 1正常 2休学")
    private String xjzt;

    @ApiModelProperty("学习方式 101全日制  102非全日制")
    private String xxfs;

    @ApiModelProperty("城乡生源代码 1城镇 2农村")
    private String cxsydm;

    @ApiModelProperty("学生问卷提交状态 0提交 1未提交")
    private String questionnaireState;

    @ApiModelProperty("学生生源填报提交状态 0提交 1未提交")
    private String studentState;

    @ApiModelProperty("学院生源填报审核状态 0通过 1待审核 2退回")
    private String collegeState;

    @ApiModelProperty("学院生源填报审核意见")
    private String collegeContent;

    @ApiModelProperty("校生源填报审核意见")
    private String schoolState;

    @ApiModelProperty("校生源填报审核意见")
    private String schoolContent;

    @ApiModelProperty("学生延期状态 0正常 1延期")
    private String delayState;

    @ApiModelProperty("就业状态代码")
    private String jyztState;

    @ApiModelProperty("就业状态说明")
    private String jyzt;

    @ApiModelProperty("毕业意向")
    private String inten;

    @ApiModelProperty("信息匹配自定义意向职位")
    private String intenName;

    @ApiModelProperty("信息匹配自定义意向工作地区")
    private String intenAddress;

    @ApiModelProperty("期望薪资")
    private String salary;

    @ApiModelProperty("信息匹配自定义意向月薪")
    private String intenSalary;

    @ApiModelProperty("信息匹配自定义意向单位性质")
    private String intenNature;

    @ApiModelProperty("信息匹配自定义意向单位行业")
    private String intenIndustry;

    @ApiModelProperty("信息匹配自定义意向单位规模")
    private String intenScale;

    @ApiModelProperty("辅导员用户ID")
    private Integer collegeUserId;

    @ApiModelProperty("学生简历类型 1、标准版 2、自定义上传")
    private String resumeType;

    @ApiModelProperty("学生简历地址")
    private String resumeUrl;

    @ApiModelProperty("简历文件名")
    private String resumeName;

    @ApiModelProperty("解约次数")
    private Integer termination;

    @ApiModelProperty("就业状态 0不可更改 1可更改")
    private String signStatus;
    @ApiModelProperty("就业状态标签")
    private String signStatusLabel;
    @ApiModelProperty("就业状态备注")
    private String signStatusContent;

    @ApiModelProperty("就业状态 省")
    private String signStatusProvince;
    @ApiModelProperty("就业状态 省二")
    private String signStatusProvinceTwo;
    @ApiModelProperty("就业状态 行业")
    private String signStatusIndustry;
    @ApiModelProperty("就业状态 行业二")
    private String signStatusIndustryTwo;
    @ApiModelProperty("就业状态 洲")
    private String signStatusContinent;
    @ApiModelProperty("就业状态 国家")
    private String signStatusCountry;
    @ApiModelProperty("就业状态 学校")
    private String signStatusSchool;
    @ApiModelProperty("就业状态 洲 编码")
    private Integer signStatusContinentCode;
    @ApiModelProperty("就业状态 国家 编码")
    private Integer signStatusCountryCode;
    @ApiModelProperty("就业状态 学校 编码")
    private Integer signStatusSchoolCode;
    @ApiModelProperty("就业状态 具体信息")
    private String signStatusMsg;

    @ApiModelProperty(value = "自由解约 0开启 1关闭", notes = "开启后学生申请解约不依据系统设置的解约次数限制 申请解约后默认关闭")
    private String freeTermination;

    @ApiModelProperty("特困生 0是 1否")
    private String tks;

    @ApiModelProperty("添加时间")
    private Date createTime;

    @ApiModelProperty("编辑时间")
    private Date updateTime;

    @ApiModelProperty("逻辑删除 0正常 1删除")
    @TableLogic
    private Integer deleted;

    @ApiModelProperty("原ID")
    private String oldId;

    @ApiModelProperty(value = "忽略系统单位自由录入 0自由录入 1不可自由录入 默认1", notes = "控制学生是否可以自主录入系统已经存在的单位进行协议就业")
    private String signEntry;

    @ApiModelProperty("学生附加信息")
    @TableField(exist = false)
    private StudentInfo studentInfo;

    @ApiModelProperty("学院名称")
    @TableField(exist = false)
    private String collegeName;

    @ApiModelProperty("专业名称")
    @TableField(exist = false)
    private String majorName;

}
